using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.DirectoryServices;


public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
	protected void loginButton_Click(object sender, EventArgs e) {
        if (!domainTextBox.Text.Equals("") && !userTextBox.Text.Equals("") && !passTextBox.Text.Equals(""))
        {
            if (DoeLogin())
            {
                /*  Voorbeeld hoe je gebruiker rollen( student, lector ,.. ophaald)
                 *  je moet vooraf nog een controle doen als sg geen null is = nog niet ingelogged
                 *  en dus ook nog geen inlog gegevens
                 */ 
                /*
                SessionGebruiker sg = (SessionGebruiker)Session["login"];
                if(sg != null){
                    for (int i = 0; i < sb.Rollen.Count; i++)
                    {
                        Response.Write(sb.Rollen[i].ToString()); 
                        // bvb alle rollen van een gebruiker en schrijven met write op pagina
                    }
                }else{
                    //redirecten naar login
                }
                */
                //hier komt redirect naar andere pagina maar momenteel is er geen 
                // werkende andere pagina :p
                infoLabel.Text = "Login geslaagd!";

           //     Response.Redirect("overzicht.aspx");
                Session["LoggedIn"] = "true";
                Server.Transfer("overzicht.aspx",false);

            }
            else
            {
                infoLabel.Text = "Gebruikernaam en of passwoord verkeerd ! ";
            }
        }
        else
        {
            infoLabel.Text = "Gelieve alles in te vullen!";
        }

	}
	private bool DoeLogin() {
		bool succes = false;
        DirectoryEntry de = new DirectoryEntry("LDAP://" + domainTextBox.Text, userTextBox.Text, passTextBox.Text, AuthenticationTypes.Secure);
        DirectorySearcher ds = new DirectorySearcher();
		ds.SearchRoot = de;
		ds.Filter = "(&(objectClass=user) (cn=" + userTextBox.Text + "))";
        SessionGebruiker sg = new SessionGebruiker(userTextBox.Text);
        try {
			ds.FindOne();
			Session["login"] = sg;
			succes = true;
		} catch {
			succes = false;
		}
        
		return succes;
	}
    protected void logoutButton_Click(object sender, EventArgs e)
    {
        Session.Clear();
        infoLabel.Text = "Gebruikernaam en of passwoord verkeerd ! ";
        Session["LoggedIn"] = "false";
        Server.Transfer("login.aspx", false);
    }
}
